#ifndef _PAVILHAO_H_
#define _PAVILHAO_H_

#include <string>

using std::string;

//! Classe Pavilhao
/*! Classe que construi objectos do tipo pavilhao, que representam um
  localizacao onde pode existir jogos
*/
class Pavilhao
{
public:
    //! Construtor
    /*!
      \param loc local do pavilhao
      \param cap capacidade do pavilhao
    */
    explicit Pavilhao(string loc, int cap);
    //! Destrutor
    ~Pavilhao() {};
    //! Metodo que devolve a capacidade do pavilhao
    int getCapacidade();
    //! Metodo que devolve o local do pavilhao
    string getLocal();

private:
    //! Variavel privada local
    string local;
    //! Varivavel privada capacidade
    int capacidade;
};

//! Excepcao CapacidadeImpossivel
/*!  Excepcao que e lancada se se tentar criar um pavilhao com lotacao negativa
 * Pode-se aceder directamente ao valor da capacidade que activou o erro, acedendo-se a variavel "capacidade".
 */
class CapacidadeImpossivel
{
public:
    //! Construtor
    /*!
      \param cap O valor da capacidade que activou o erro
    */
    CapacidadeImpossivel(int cap) : capacidade(cap) {};
    int capacidade;
};


#endif /* _PAVILHAO_H_ */
